#pragma once

#include <common.h>
#include <ir/reg.h>
#include <ir/inst.h>

namespace ir {
  class Reg;
  class Inst;
}

namespace riscv {
  class Visitor;
}

namespace ir {
  class Block {
  public:
    std::vector<Reg*> reg_list;
    std::vector<Inst*> inst_list;

    Block(int index);
    ~Block();

    void accept(riscv::Visitor & visitor);

    std::string get_name();

  private:
    std::string name;
  };
}
